home *** CD-ROM | disk | FTP | other *** search
Verilog source code | 1992-06-18 | 600 b | 30 lines | [TEXT/MPS ] |
- module cache(reset, addr, read_data, read_hit, write_data, write);
-
- input reset,
- write;
- output read_hit;
- input [31: 0]addr,
- write_data;
-
- output [31: 0]read_data;
- reg [31: 0]tag[1024];
- reg [31: 0]data[1024];
- reg valid[1024];
-
- integer i;
-
- always @(negedge reset) begin
- for (i = 0; i < 1024; i=i+1)
- valid[i] = 0;
- end
-
- assign read_hit = valid[addr[11:2]] && tag[addr[11:2]] == addr;
-
- assign read_data = data[addr[11:2]];
-
- always @(posedge write) begin
- valid[addr[11:2]] = 1;
- tag[addr[11:2]] = addr;
- data[addr[11:2]] = write_data;
- end
- endmodule